package 字符串;

/**
 * @author: 大怪
 * @email: 962527441@qq.com
 */

/**
 * 题目：
 * 给定一个字符串 s ，请计算这个字符串中有多少个回文子字符串。
 * 具有不同开始位置或结束位置的子串，即使是由相同的字符组成，也会被视作不同的子串。
 *
 *示例 1：
 *
 * 输入：s = "abc"
 * 输出：3
 * 解释：三个回文子串: "a", "b", "c"
 */
public class 回文子字符串的个数 {
    class Solution {
        public int countSubstrings(String s) {
            int cnt1 = 0;
            int cnt2 = 0;
            int right = s.length();
            for (int i = 0; i < s.length(); i++) {
                cnt1 += test(s,i,i);
                cnt2 += test(s,i,i+1);
            }
            return cnt1+cnt2;
        }

        public int test(String s,int l,int r) {
            int cnt = 0;
            while(l>=0 && r<s.length()&& s.charAt(l) == s.charAt(r)) {
                cnt++;
                l--;
                r++;
            }
            return cnt;
        }
    }
}
